package com.southminority.ethnic.controller.organization.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * 机构介绍VO
 * 
 * @author SouthMinority
 */
@Data
@Schema(description = "机构组织信息视图对象")
public class OrganizationVO {

    @Schema(description = "机构ID", example = "1")
    private Long id;

    @Schema(description = "机构名称", example = "南方少数民族语言信息化实验室")
    private String name;

    @Schema(description = "副标题", example = "贵州省首批省级文科实验室 · 负责人：刘美玲教授")
    private String subtitle;

    @Schema(description = "简要描述", example = "贵州民族大学\"南方少数民族语言信息化实验室\"于2023年11月获批，为贵州省首批省级文科实验室。")
    private String description;

    @Schema(description = "详细内容（HTML格式）", example = "<p>实验室详细介绍...</p>")
    private String content;

    @Schema(description = "负责人", example = "刘美玲")
    private String director;

    @Schema(description = "负责人职称", example = "教授")
    private String directorTitle;

    @Schema(description = "成立日期", example = "2023-11-01")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate establishmentDate;

    @Schema(description = "机构类型", example = "省级文科实验室")
    private String organizationType;

    @Schema(description = "级别", example = "省级")
    private String level;

    @Schema(description = "封面图片URL", example = "http://example.com/cover.jpg")
    private String coverImage;

    @Schema(description = "相关图片URL列表")
    private List<String> imageUrls;

    @Schema(description = "介绍视频URL", example = "http://example.com/intro.mp4")
    private String videoUrl;

    @Schema(description = "联系信息对象", example = "{\"address\":\"贵州省贵阳市花溪区\",\"phone\":\"0851-88888888\",\"email\":\"lab@gzmu.edu.cn\"}")
    private Map<String, Object> contactInfo;

    @Schema(description = "研究方向列表")
    private List<String> researchDirections;

    @Schema(description = "主要成就（HTML格式）", example = "<h3>承担项目</h3><p>承担多项国家社科基金重大研究项目...</p>")
    private String achievements;

    @Schema(description = "设施设备（HTML格式）", example = "<ul><li>语言数据采集设备</li><li>音频处理工作站</li></ul>")
    private String facilities;

    @Schema(description = "合作情况（HTML格式）", example = "<p>与国内外多所高校和研究机构建立合作关系...</p>")
    private String cooperation;

    @Schema(description = "排序值，数字越小越靠前", example = "1")
    private Integer sortOrder;

    @Schema(description = "是否在首页展示", example = "1", allowableValues = {"1", "0"})
    private Integer isFeatured;

    @Schema(description = "是否在团队页展示", example = "1", allowableValues = {"1", "0"})
    private Integer isTeamDisplay;

    @Schema(description = "浏览次数", example = "1024")
    private Integer viewCount;

    @Schema(description = "状态: 1-启用, 0-禁用, -1-已删除", example = "1", allowableValues = {"1", "0", "-1"})
    private Integer status;

    @Schema(description = "创建时间", example = "2023-11-01T10:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @Schema(description = "更新时间", example = "2025-08-29T09:50:03")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}
